NixOS Modules
モジュールは attributes か、attributtes を返す関数である
NixOS configuration のスキーマには、別のモジュールを取り込むための import attribute がある
まずは一通りこの辺り読むと良い
デフォルト?のモジュールはここで定義されている
モジュールの option を検索できるページもある
options 配下に services を追加するのは慣習らしい
nixos-optionというコマンドがあるみたい
mkPackageOption
module で使うパッケージを指定するオプション
configは option で定義されている値を実際に設定する属性
config というスコープ?は省略してもいいらしい?
あるモジュールで import した他のモジュールの option もここで定義することができる
モジュールが関数の場合
モジュールを import する時に実行される evalModule が渡しているらしい
他の値を渡せる仕組みもある
submodule
option をネストしたり、同じ option を使いまわしたい時に使える
実例
submodule 関数?は config と name を引数に取ることができる
module は関数であることができる
lib を引数に撮ることがあり、それは nixpkgs.lib である
lib.types が使えるのはこれが理由